package com.gsc.handler.exception;

import com.gsc.domain.ResponseResult;
import com.gsc.enums.AppHttpCodeEnum;
import com.gsc.exception.SystemException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

/**
 * @author gscstart
 * @create 2023/2/7-17:07
 * 异常的处理程序
 * @RestControllerAdvice = @ControllerAdvice + @ResponseBody
 * 使用lombok 提供的注解 @Slf4j，来打印日志
 */

@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandler {

    //定义SystemException异常的处理方法
    @ExceptionHandler(SystemException.class)
    public ResponseResult systemExceptionHandler(SystemException exception){
        //打印异常信息，方便调试
        log.error("出现了异常！！！{}",exception);
        //从异常对象中获取提示信息，封装返回
        return ResponseResult.errorResult(exception.getCode(),exception.getMsg());
    }

    //定义Exception异常的处理方法
    @ExceptionHandler(Exception.class)
    public ResponseResult systemExceptionHandler(Exception exception){
        //打印异常信息，方便调试
        log.error("出现了异常！！！{}",exception);
        //从异常对象中获取提示信息，封装返回
        return ResponseResult.errorResult(AppHttpCodeEnum.SYSTEM_ERROR.getCode(),exception.getMessage());
    }



}
